package main

import "fmt"

func main() {
	ch := make(chan string) //无缓冲channel

	//写端：写端写数据，读端不在读，阻塞
	//读端：读端读数据，同时写端不在写，读端阻塞
	//len(ch)：channel中剩余未读取数据个数。cap(ch):通道的容量
	go func() {
		for i := 0; i < 2; i++ {
			fmt.Println("i = ", i)
		}
		ch <- "子go程打印完毕"
	}()

	str := <-ch //一开始这里阻塞，等待有数据写入；等子go程
	fmt.Println("str = ", str)
}
